/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.aspas.util;

import br.com.aspas.modelo.Caixa;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Calendar;
import java.util.Locale;

/**
 *
 * @author Reinaldo Viana
 */
public class Comprovante {

    private String comprovante;
    private String[] meses = {"Janeiro", "Fevereiro", "Marco",
        "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro",
        "Outubro", "Novembro", "Dezembro"};

    public Comprovante(String modelo) {
        comprovante = modelo;
    }

    public String gerarComprovante(Caixa caixa) {
        Locale locale = new Locale("pt", "BR");
        Locale.setDefault(locale);

        DecimalFormat decimalFormat =
                (DecimalFormat) NumberFormat.getNumberInstance(locale);
        decimalFormat.setMinimumFractionDigits(2);

        Calendar cal = Calendar.getInstance();

        comprovante = comprovante.replaceAll("#recibo", caixa.getCodigo().toString());
        comprovante = comprovante.replaceAll("#nome", caixa.getNome());
        comprovante = comprovante.replaceAll("#cpfCnpj", caixa.getCpfcnpj());
        comprovante = comprovante.replaceAll("#qtde", caixa.getQuantidade().toString());
        comprovante = comprovante.replaceAll("#formaPagamento", caixa.getFormaPagamento());
        comprovante = comprovante.replaceAll("#total", decimalFormat.format(caixa.getTotal().doubleValue()));
        comprovante = comprovante.replaceAll("#recebido", decimalFormat.format(caixa.getValorRecebido()));
        comprovante = comprovante.replaceAll("#troco", decimalFormat.format(caixa.getValorTroco()));
        comprovante = comprovante.replaceAll("#dia", String.valueOf(cal.get(Calendar.DAY_OF_MONTH)));
        comprovante = comprovante.replaceAll("#mesExtenso", meses[cal.get(Calendar.MONTH)]);
        comprovante = comprovante.replaceAll("#mes", String.valueOf(cal.get(Calendar.MONTH)));
        comprovante = comprovante.replaceAll("#ano", String.valueOf(cal.get(Calendar.YEAR)));

        return comprovante;
    }
}
